<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
</head>

<body>
  <script>
    /*
      构造函数：构造函数是一种特殊的函数，主要用来初始化对象
      使用场景：常规的{对象字面量语法应许创建一个对象，如果需要创建多个对象可以通过构造函数创建多个类似的对象 
      说明：
          使用new关键字调用函数的行为被称为实例化
          实例化构造函数的时候没有参数可以省略()
          构造函数内部不需要写return(即使写了return也无效)，返回值即为新创建的对象  
     */

    /*定义一个Person构造函数 */
    function Person(name, age, gender) {
      this.name = name
      this.age = age
      this.gender = gender
    }

    /* 往Person的显式原型prototype上添加方法，实例对象都会沿着隐式原型__proto__找到 */
    Person.prototype.getThis = function () {
      console.log(this);
    }

    /* 实例化Person构造函数 */
    const object1 = new Person("陶品奇", 22, "男")
    console.log(object1);
    object1.getThis()

    console.log("-------------------------------");

    const object2 = new Person("马云", 56, "男")
    console.log(object2);
    object2.getThis()

    console.log("-------------------------------");

    function Goods(name,count,price) {
      this.name=name
      this.count=count
      this.price=price
    }
    const mi=new Goods("小米",10,"1999元")
    console.log(mi);

    console.log("-------------------------------");

    const wei=new Goods("华为",23,"7999元")
    console.log(wei);
  </script>
</body>

</html>